package com.lsh;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Timer;
import java.util.TimerTask;

/**
 * @author ：LiuShihao
 * @date ：Created in 2020/8/19 1:35 下午
 * @desc ：Timer 是 JDK 自带的定时任务执行类，无论任何项目都可以直接使用 Timer 来实现定时任务，所以 Timer 的优点就是使用方便
 * 缺点：
 * 当一个任务的执行时间过长时，会影响其他任务的调度；
 * 当一个任务抛出异常，其他任务也会终止运行；
 * Timer 类实现定时任务的优点是方便，因为它是 JDK 自定的定时任务，
 * 但缺点是任务如果执行时间太长或者是任务执行异常，会影响其他任务调度，所以在生产环境下建议谨慎使用。
 */
public class MyTimerTask {

    public static void main(String[] args) {
        // 定义一个任务
        TimerTask timerTask = new TimerTask() {
            public void run() {
                System.out.println(LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
            }
        };
        // 计时器
        Timer timer = new Timer();
        // 添加执行任务（延迟 1s 执行，每 3s 执行一次）
        timer.schedule(timerTask,1000,10000);
    }
}
